home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Pacific C for DOS / INCLUDE / STDLIB.H < prev    next >
C/C++ Source or Header  |  1995-03-08  |  3KB  |  99 lines

  1. /*    Standard utility functions */
  2.  
  3. #ifndef    _STDDEF
  4. typedef    int        ptrdiff_t;    /* result type of pointer difference */
  5. typedef    unsigned    size_t;        /* type yielded by sizeof */
  6. typedef unsigned short    wchar_t;    /* wide char type */
  7.  
  8. #define    offsetof(ty, mem)    ((int)&(((ty *)0)->mem))
  9.  
  10. #define    _STDDEF
  11.  
  12. #ifndef    NULL
  13. #define    NULL    ((void *)0)
  14. #endif    NULL
  15.  
  16. extern int    errno;            /* system error number */
  17. #endif    _STDDEF
  18.  
  19. #define    RAND_MAX    32767        /* max value returned by rand() */
  20.  
  21. #ifndef    _DIVTYPES
  22. typedef struct {
  23.     int    quot;    /* quotient */
  24.     int    rem;    /* remainder */
  25. } div_t;                /* div() return type */
  26.  
  27. typedef struct {
  28.     long     quot;    /* quotient */
  29.     long     rem;    /* remainder */
  30. } ldiv_t;                /* ldiv() return type */
  31. #define    _DIVTYPES
  32. #endif
  33.  
  34. extern double        atof(const char *);
  35. extern int        atoi(const char *);
  36. extern unsigned        xtoi(const char *);
  37. extern long        atol(const char *);
  38. extern int        rand(void);
  39. extern void        srand(unsigned int);
  40. extern void *        calloc(size_t, size_t);
  41. extern div_t        div(int numer, int denom);
  42. extern ldiv_t        ldiv(long number, long denom);
  43. extern unsigned long    _lrotl(unsigned long value, unsigned int shift);
  44. extern unsigned long    _lrotr(unsigned long value, unsigned int shift);
  45. extern unsigned int    _rotl(unsigned int value, unsigned int shift);
  46. extern unsigned int    _rotr(unsigned int value, unsigned int shift);
  47.  
  48. #define    max(a,b)    (((a) > (b)) ? (a) : (b))
  49. #define    min(a,b)    (((a) < (b)) ? (a) : (b))
  50.  
  51. #if    i8086 && !FLAT_MODEL
  52. #ifndef    _STDLIB_
  53. #define    _STDLIB_
  54. enum {    _NO_EMS = 0, _USE_EMS };
  55. #endif
  56. #endif
  57.  
  58. #if    i8086 && LARGE_DATA
  59. extern void *    malloc(size_t);
  60. extern void    free(far void *);
  61. extern void *    realloc(far void *, size_t);
  62. extern void *    farmemcpy(far void *, far void *, size_t);
  63. extern void *    farmemset(far void *, int, size_t);
  64. extern void *    _far_alloc(size_t, char);
  65. extern void *    _far_sbrk(size_t, char);
  66. extern near void *    nearsbrk(size_t);
  67. #define    farmalloc(n)    _far_alloc(n, _USE_EMS)
  68. #define    farfree(p)    free(p)
  69. #define    farrealloc(p,n)    realloc(p,n)
  70. #define    _non_ems_alloc(x)    _far_alloc(x, _NO_EMS)
  71. #define    _non_ems_sbrk(x)    _far_sbrk(x, _NO_EMS)
  72. #else
  73. extern void *        malloc(size_t);
  74. extern void        free(void *);
  75. extern void *        realloc(void *, size_t);
  76. #define    _non_ems_alloc(x)    malloc(x)
  77. #define    _non_ems_sbrk(x)    sbrk(x)
  78. #if    i8086 && !FLAT_MODEL
  79. extern far void *    _far_alloc(size_t, char);
  80. extern far void *    _far_sbrk(size_t, char);
  81. #define    farmalloc(n)    _far_alloc(n, _USE_EMS)
  82. extern void        farfree(far void *);
  83. extern far void *    farrealloc(far void *, size_t);
  84. extern far void *    farmemcpy(far void *, far void *, size_t);
  85. extern far void *    farmemset(far void *, int, size_t);
  86. #endif    /* i8086 */
  87. #endif    /* i8086 && LARGE_DATA */
  88.  
  89. extern void    abort(void);
  90. extern void    exit(int);
  91. extern int    atexit(void (*)(void));
  92. extern char *    getenv(const char *);
  93. extern char **    environ;
  94. extern int    system(char *);
  95. extern void    qsort(void *, size_t, size_t, int (*)(const void *, const void *));
  96. extern void *    bsearch(const void *, void *, size_t, size_t, int(*)(const void *, const void *));
  97. extern int    abs(int);
  98. extern long    labs(long);
  99.